Printing apparatus capable of counting the number of times of printing, method for controlling printing apparatus, and storage medium

ABSTRACT

If the printing protocol associated with a received print job is not an internet printing protocol, the number of times of printing is counted for each type of printing protocol. If the printing protocol associated with a received print job is an internet printing protocol, the number of times of printing is counted while distinguishing a transmission source application by identifying a transmission source application.

BACKGROUND

Field

Aspects of the present invention generally relate to a printingapparatus capable of counting the number of times of printing, a methodfor controlling the printing apparatus, and a storage medium.

Description of the Related Art

A printing apparatus such as a multifunction peripheral and a printersupports various printing protocols. Examples of the printing protocolsinclude an internet printing protocol (IPP), a RAW protocol, and a lineprinter remote protocol (LPR). Japanese Patent Application Laid-Open No.2003-80807 discusses a configuration of classifying received print jobsby the types of printing protocols and managing the classified jobs.

The printing apparatus counts the number of times of printing for eachtype of printing protocol. However, the conventional printing apparatussimply counts the number of times of printing for each type of printingprotocol, as described in Japanese Patent Application Laid-Open No.2003-80807. Even if a plurality of pieces of software such as a firstapplication and a second application transmits print jobs to theprinting apparatus, these pieces of software are not distinguished fromeach other. If a plurality of pieces of software transmits print jobs tothe printing apparatus by using the same printing protocol, the printjobs are counted together as printing using the same printing protocolwithout distinguishing between these pieces of software.

SUMMARY

Aspects of the present invention are generally directed to a techniquefor counting the number of times of printing while distinguishing atransmission source application, for a specific printing protocol.

According to an aspect of the present invention, a printing apparatusincludes a receiving unit configured to receive a print job, a printingunit configured to execute printing based on the received print job, afirst identification unit configured to identify a type of a printingprotocol of the received print job, a second identification unitconfigured to identify a transmission source application of the receivedprint job, and a counting unit configured to count a number of times ofprinting. In a case where the type of the printing protocol is aspecific printing protocol, the counting unit counts the number of timesof printing while distinguishing a transmission source applicationaccording to an identification result of the second identification unit.

Further features of the present disclosure will become apparent from thefollowing description of exemplary embodiments with reference to theattached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram illustrating a configuration of a printingapparatus.

FIGS. 2A to 2F are diagrams illustrating setting screens.

FIG. 3 is a diagram illustrating other settings to be changed inconjunction with a changed setting.

FIG. 4 is a diagram illustrating a response to a multicast domain namesystem (mDNS) search packet.

FIG. 5 is a diagram illustrating operations related to printing usingInternet Printing Protocol (IPP).

FIG. 6 is a flow chart illustrating processing executed when executingprinting.

FIG. 7 is a flow chart illustrating application identificationprocessing.

FIG. 8 is a diagram illustrating a counter.

FIG. 9 is a flow chart illustrating a modified example of applicationidentification processing.

DESCRIPTION OF THE EMBODIMENTS

Various exemplary embodiments will be described in detail below withreference to the drawings.

First, a configuration of a printing apparatus 100 according to a firstexemplary embodiment will be described with reference to FIG. 1. Theprinting apparatus 100 according to the present exemplary embodiment issupposed to be a multifunction peripheral. However, the printingapparatus 100 according to the present exemplary embodiment may be aprinter that does not include a scanner function.

A central processing unit (CPU) 101 reads a control program stored in aread-only memory (ROM) 102, and executes various types of processing forcontrolling operations of the printing apparatus 100. The ROM 102 storesthe control program. A random access memory (RAM) 103 is used as a mainmemory of the CPU 101, and a temporary storage area such as a work area.A hard disk drive (HDD) 104 stores various types of data such as a scanimage, user setting, and count information to be described below.

In the case of the printing apparatus 100, it is supposed that a singleCPU 101 executes respective types of processing illustrated in flowcharts to be described below. However, other forms may also be used. Forexample, the printing apparatus may be configured in such a manner thata plurality of CPUs cooperates with each other to execute the respectivetypes of processing illustrated in the flow charts to be describedbelow.

A printer 105 executes printing on a sheet based on a print job receivedfrom an external apparatus or print data such as a scan image generatedby a scanner 106. The number of times of printing execution is stored inthe HDD 104 as count information to be described below. The scanner 106reads a document and generates a scan image. The scan image generated bythe scanner 106 is printed by the printer 105, or stored in the HDD 104.

An operation unit 107 includes a liquid crystal display unit having atouch panel function and a key board, and displays various screens to bedescribed below. A user can input a command or information to theprinting apparatus 100 via the operation unit 107.

A network interface (I/F) 108 is connected to a network 110 to executecommunication with an external apparatus. The network I/F 108 may be awired I/F connected to a local area network (LAN) work cable, or may bea wireless I/F for executing wireless communication, such as Wi-Fi(registered trademark). The network I/F 108 receives a print jobtransmitted from an external apparatus such as a personal computer (PC)or a portable terminal (for example, smart phone). The printer 105executes printing based on the received print job.

A print application in the present exemplary embodiment will now bedescribed. In the present exemplary embodiment, two applications, i.e.,an application A and an application B are supposed as printapplications. These applications are installed in the external apparatussuch as the PC or the portable terminal described above.

The application A uses the IPP as a printing protocol, and transmitsimage data of a pwg-raster format, as a print job. On the other hand,the application B uses the IPP as a printing protocol, and transmitsimage data of a Portable Document Format (PDF) format, as a print job.In this way, the application A and the application B are different fromeach other in format of image data handled in the print job. However,the printing protocol in use is the IPP in both applications. Thepresent exemplary embodiment is directed to a technique of counting thenumber of times of printing execution while distinguishing whichapplication the print job is received from, when the print job isreceived by using the same printing protocol.

Various types of print setting including settings about the applicationA and the application B will now be described with reference to FIGS.2A, 2B, 2C, 2D, 2E, and 2F. A setting screen 200 in FIG. 2A is a screendisplayed by the operation unit 107. The setting screen 200 is used forthe user performing print setting. In items 201, 202, 203, 204, and 205,“application A setting,” “application B setting,” “IPP setting,”“hypertext transfer protocol (HTTP) setting,” and “multicast domain namesystem (mDNS) setting” are displayed as setting items. If the userselects a predetermined item on the setting screen 200 by, for example,a touch operation, the operation unit 107 displays a screen related tothe selected setting item.

A setting screen 210 in FIG. 2B is a screen displayed by the operationunit 107 when the item 201 is selected. The setting screen 210 is usedfor the user setting whether to permit execution of printing using theapplication A. If “ON” is set on the setting screen 210, the printingapparatus 100 executes printing using the application A (executesprinting based on a print job transmitted from the application A). Onthe other hand, if “OFF” is set on the setting screen 210, the printingapparatus 100 does not execute printing using the application A (doesnot execute printing based on a print job transmitted from theapplication A).

A setting screen 220 in FIG. 2C is a screen displayed by the operationunit 107 when the item 202 is selected. The setting screen 220 is usedfor the user setting whether to permit execution of printing using theapplication B. If “ON” is set on the setting screen 220, the printingapparatus 100 executes printing using the application B (executesprinting based on a print job transmitted from the application B). Onthe other hand, if “OFF” is set on the setting screen 220, the printingapparatus 100 does not execute printing using the application B (doesnot execute printing based on a print job transmitted from theapplication B).

A setting screen 230 in FIG. 2D is a screen displayed by the operationunit 107 when the item 203 is selected. The setting screen 230 is usedfor the user setting whether to execute printing using the IPP. If “ON”is set on the setting screen 230, the printing apparatus 100 executesprinting using the IPP (printing based on a print job received by theIPP). On the other hand, if “OFF” is set on the setting screen 230, theprinting apparatus 100 does not execute printing using the IPP (printingbased on a print job received by the IPP).

A setting screen 240 in FIG. 2E is a screen displayed by the operationunit 107 when the item 204 is selected. The setting screen 240 is usedfor the user setting whether to execute communication based on the HTTP.If “ON” is set on the setting screen 240, the printing apparatus 100executes communication based on the HTTP. On the other hand, if “OFF” isset on the setting screen 240, the printing apparatus 100 does notexecute communication based on the HTTP.

A setting screen 250 in FIG. 2F is a screen displayed by the operationunit 107 when the item 205 is selected. The setting screen 250 is usedfor the user setting whether to execute communication based on the mDNS.If “ON” is set on the setting screen 250, the printing apparatus 100executes communication based on the mDNS. On the other hand, if “OFF” isset on the setting screen 250, the printing apparatus 100 does notexecute communication based on the mDNS.

The user can perform setting of the printing apparatus 100 by using thesetting screens described above with reference to FIGS. 2A to 2F. Forexample, the user can set whether to permit both printing using theapplication A and printing using the application B, whether to prohibiteither one of them, or whether to prohibit both of them. The printingapparatus 100 may be configured to allow only a specific user (forexample, a system administrator) to perform setting using the settingscreens illustrated in FIGS. 2A to 2F by introducing an authenticationfunction into the printing apparatus 100.

For executing printing by using the application A or the application Bin the present exemplary embodiment, it is necessary to individually setall of the IPP setting, the HTTP setting, and the mDNS setting to “ON.”If the user is required to individually set these settings, the user'slabor increases. Furthermore, in the first place, there is a possibilitythat an ordinary user does not recognize necessity of additionallysetting these settings to “ON.” In the present exemplary embodiment,therefore, all of the IPP setting, the HTTP setting, and the mDNSsetting are automatically set to “ON” in conjunction with theapplication A setting or the application B setting” being set to “ON.”Such processing will now be described with reference to FIG. 3.

First, processing indicated in 301 in FIG. 3 will now be described. Itis supposed that the user has set the application A setting to “ON” onthe setting screen 210. At this time, the printing apparatus 100automatically changes the IPP setting, the HTTP setting, and the mDNSsetting, which are required for executing the printing using theapplication A, to “ON” as well. As a result, the user's labor ofindividually changing the settings is removed. Furthermore, the printingapparatus 100 can automatically change settings to appropriate settingseven if the user does not properly recognize settings required forprinting using the application A.

Processing indicated in 302 in FIG. 3 will now be described. It issupposed that the user has set the application B setting to “ON” on thesetting screen 220. At this time, the printing apparatus 100automatically changes the IPP setting, the HTTP setting, and the mDNSsetting, which are required for executing the printing using theapplication B, to “ON” as well. As a result, the user's labor ofindividually changing the settings is removed. Furthermore, the printingapparatus 100 can automatically change settings to appropriate settingseven if the user does not properly recognize settings required forprinting using the application B.

As described above, when the user sets the application A setting or theapplication B setting to “ON,” the printing apparatus 100 canautomatically change the IPP setting, the HTTP setting, and the mDNSsetting to “ON” as well in conjunction with the application A setting orthe application B setting. In the case of the printing apparatus 100,even if the user changes the application A setting or the application Bsetting to “OFF,” the IPP setting, the HTTP setting, and the mDNSsetting are not set to “OFF” in conjunction with such setting change(see 303 and 304 in FIG. 3). This is because there is a possibility thatthe IPP setting, the HTTP setting, and the mDNS setting may be relatedto setting different from the application A setting or the application Bsetting.

A relation between the application A setting or the application Bsetting and operations of the mDNS will now be described with referenceto FIG. 4. In the present exemplary embodiment, the mDNS is used for anexternal apparatus such as the PC or the portable terminal searching fora printing apparatus.

Processing indicated in 401 in FIG. 4 will now be described. In a casewhere both the application A setting and the application B setting areset to “OFF,” even if the printing apparatus 100 receives an mDNS searchpacket, the printing apparatus does not respond to the received searchpacket.

Processing indicated in 402 in FIG. 4 will now be described. In a casewhere the application A setting is set to “OFF” while the application Bsetting is set to “ON,” when the printing apparatus 100 receives an mDNSsearch packet, the printing apparatus 100 returns a response indicatingthat the application B is supported. Since the application A setting isset to “OFF,” the printing apparatus 100 does not return a responseindicating that the application A is supported.

Processing indicated in 403 in FIG. 4 will now be described. In a casewhere the application A setting is set to “ON” while the application Bsetting is set to “OFF,” when the printing apparatus 100 receives anmDNS search packet, the printing apparatus 100 returns a responseindicating that the application A is supported. Since the application Bsetting is set to “OFF,” the printing apparatus 100 does not return aresponse indicating that the application B is supported.

Processing indicated in 404 in FIG. 4 will now be described. In a casewhere both the application A setting and the application B setting areset to “ON,” when the printing apparatus 100 receives an mDNS searchpacket, the printing apparatus 100 returns a response indicating thatboth the application A and the application B are supported.

As described above, the printing apparatus 100 can switch processing tobe executed when an mDNS search packet is received, accordance to theapplication A setting and the application B setting.

Processing to be executed when printing is executed using the IPP willnow be described with reference to FIG. 5. An application of theexternal apparatus inquires of the printing apparatus 100 about an imageformat that the printing apparatus 100 supports. Upon receiving theinquiry, the printing apparatus 100 responds to the inquiry according tothe application A setting and the application B setting.

First, processing indicated in 501 in FIG. 5 will now be described. In acase where both the application A setting and the application B settingare set to “OFF,” even if the printing apparatus 100 receives an inquiryabout the IPP, the printing apparatus does not respond to the inquiry.Furthermore, even if the printing apparatus 100 receives a print jobfrom either the application A or the application B, the printingapparatus 100 does not execute printing based on the received print job.When the printing apparatus 100 receives a print job by using the IPP,it is necessary to determine which of the application A and theapplication B the print job is transmitted from. A determination methodthereof will be described in detail with reference to flow chartsillustrated in FIGS. 6 and 7 to be described below.

Processing indicated in 502 in FIG. 5 will now be described. In a casewhere the application A setting is set to “OFF” while the application Bsetting is set to “ON,” if the printing apparatus 100 receives aninquiry about the IPP, the printing apparatus 100 returns “PDF” as asupported image format. Furthermore, the printing apparatus 100 does notexecute printing based on a print job received from the application A,but executes printing based on a print job received from the applicationB.

Processing indicated in 503 in FIG. 5 will now be described. In a casewhere the application A setting is set to “ON” while the application Bsetting is set to “OFF,” if the printing apparatus 100 receives aninquiry about the IPP, the printing apparatus 100 returns “pwg-raster”as the supported image format. Furthermore, the printing apparatus 100executes printing based on a print job received from the application A,and does not execute printing based on a print job received from theapplication B.

Processing indicated in 504 in FIG. 5 will now be described. In a casewhere both the application A setting and the application B setting areset to “ON,” if the printing apparatus 100 receives an inquiry about theIPP, the printing apparatus 100 returns “PDF” and “pwg-raster” as asupported image format. Furthermore, whichever of the application A andthe application B the printing apparatus 100 receives a print job from,the printing apparatus executes printing based on the received printjob.

As described above, the printing apparatus 100 can switch operationsrelated to the printing using the IPP, according to the application Asetting and the application B setting.

Processing to be executed when the printing apparatus 100 executesprinting will now be described with reference to flow charts illustratedin FIGS. 6 and 7. Each step illustrated in the flow charts in FIGS. 6and 7 is processed by the CPU 101 loading a control program stored in amemory such as the ROM 102 onto the RAM 103 and executing the loadedprogram.

In the case of the present exemplary embodiment, the external apparatussuch as the PC or the portable terminal transmits a print job to theprinting apparatus 100 via the network 110. When transmitting a printjob, the external apparatus uses various printing protocols such as theIPP, the RAW protocol, and the LPR protocol. First, in step S601, thenetwork I/F 108 receives a print job transmitted from the externalapparatus. Then, in step S602, the CPU 101 determines whether theprinting protocol of the received print job is the IPP. Determination ofthe printing protocol is performed based on, for example, a receptionport number. If the CPU 101 determines in step S602 that the printingprotocol of the received print job is the IPP (YES in step S602), theprocessing proceeds to step S603. On the other hand, if the CPU 101determines in step S602 that the printing protocol of the received printjob is not the IPP (NO in step S602), the processing proceeds to stepS611.

Step S603 will now be described. In step S603, the CPU 101 executesapplication identification processing to identify an application that isa transmission source of the print job received by using the IPP. Theapplication identification processing will now be described in detailwith reference to the flow chart in FIG. 7.

FIG. 7 is a sub-flow chart for describing the application identificationprocessing in step S603 in FIG. 6. In step S701, the CPU 101 analyzesthe received print job, and determines whether a format of image dataincluded in the print job is pwg-raster. Determination of the format ofthe image data is performed by, for example, analyzing headerinformation of the image data. If the format of the image data includedin the print job is determined to be pwg-raster (YES in step S701), theprocessing proceeds to step S702. In step S702, the CPU 101 identifiesthe application A as a transmission source application.

On the other hand, when the format of the image data included in theprint job is, for example, PDF, the CPU 101 determines in step S701 thatthe format of the image data included in the print job is not pwg-raster(NO in step S701), and the processing proceeds to step S703. In stepS703, the CPU 101 identifies the application B as a transmission sourceapplication.

As described above, by executing the application identificationprocessing described with reference to the flow chart in FIG. 7, theprinting apparatus 100 can identify the transmission source applicationof the print job received using the IPP. If the transmission sourceapplication of the print job received using the IPP is identified, theprocessing returns to FIG. 6 and proceeds to step S604.

Step S604 will now be described. In step S604, the CPU 101 determineswhether the transmission source application is the application A,according to a result of the application identification processingexecuted in step S603. If the CPU 101 determines in step S604 that thetransmission source application is the application A (YES in step S604),the processing proceeds to step S605. On the other hand, if the CPU 101determines in step S604 that the transmission source application is notthe application A, i.e., the transmission source application is theapplication B (NO in step S604), the processing proceeds to step S608.

Step S605 will now be described. In step S605, the CPU 101 determineswhether the application A setting is ON. When the application A settingis set to ON, the CPU 101 determines in step S605 that the application Asetting is ON (YES in step S605), and the processing proceeds to stepS606. On the other hand, when the application A setting is set to OFF,the CPU 101 determines in step S605 that the application A setting isnot ON (NO in step S605), and the processing illustrated in the flowchart ends without executing printing based on the received print job.

Step S606 will now be described. In step S606, the printer 105 executesprinting based on the received print job. Furthermore, when executingprinting in step S606, the printer 105 executes printing in an imageprocessing mode for the application A. The image processing mode for theapplication A is preset depending on use of the application A. Forexample, in a case where the application A is often used in printing ofa picture image such as a photograph, an image processing mode ofprioritizing the image quality of pictures is preset as an imageprocessing mode for the application A.

If printing is executed in step S606, the processing proceeds to stepS607. In step S607, the CPU 101 updates a counter 800 for counting thenumber of times of printing. This counter will now be described indetail with reference to FIG. 8.

The counter 800 illustrated in FIG. 8 is a counter for counting thenumber of times of printing execution for each printing protocol. Thecounter 800 is stored in the HDD 104. In the present exemplaryembodiment, the counting is performed while classifying printingprotocols into four types, i.e., “RAW Print” using the RAW protocol(item 801), “LPR Print” using the LPR protocol (item 802), “IPP Print”using the IPP (item 803), and “Other” indicating other printingprotocols (item 806). Furthermore, the present exemplary embodiment ischaracterized in that the counting is performed while furtherdistinguishing, for the IPP Print, whether the transmission sourceapplication is the application A or the application B (items 804 and805).

In a case where the processing in step S607 is executed, the receivedprint job uses the IPP and the transmission source application is theapplication A. In step S607, therefore, values of the items 803 and 804are respectively incremented by one.

Step S608 will now be described. In step S608, the CPU 101 determineswhether the application B setting is ON. When the application B settingis set to ON, the CPU 101 determines in step S608 that the application Bsetting is ON (YES in step S608), and the processing proceeds to stepS609. On the other hand, when the application B setting is set to OFF,the CPU 101 determines in step S608 that the application B setting isnot ON (NO in step S608), and the processing illustrated in the flowchart ends without executing printing based on the received print job.

Step S609 will now be described. In step S609, the printer 105 executesprinting based on the received print job. Furthermore, when executingprinting in step S609, printing is executed in an image processing modefor the application B. The image processing mode for the application Bis preset depending on use of the application B. For example, in a casewhere the application B is often used in printing of a business documentsuch as a Word document, an image processing mode of prioritizing theimage quality of characters is preset as an image processing mode forthe application B.

If printing is executed in step S609, the processing proceeds to stepS610. In step S610, the CPU 101 updates the counter 800. In step S610,values of the items 803 and 805 are respectively incremented by one.

Step S611 will now be described. In step S611, the printer 105 executesprinting based on the received print job. At this time, the printingprotocol of the print job is not the IPP. If the printing is executed,in step S612, the CPU 101 updates the counter 800. In step S612, a valueof an item corresponding to the printing protocol of the print job isincremented by one. For example, if the printing protocol is the RAWprotocol, a value of the item 801 is incremented by one. If the printingprotocol is the LPR protocol, a value of the item 802 is incremented byone.

As described above, according to the present exemplary embodiment, it ispossible to count the number of times of printing for each type ofprinting protocol, and as for the IPP, count the number of times ofprinting while distinguishing a transmission source application.

Furthermore, the IPP is expected to be utilized in various printingservices with the development of cloud service and spread of touchprinting using near field communication (NFC). Therefore, as for theIPP, by counting the number of times of printing while distinguishing atransmission source application, a system administrator and amanufacturer of the printing apparatus 100 can grasp how the printingapparatus 100 is used.

In the first exemplary embodiment, a transmission source application isdistinguished based on the format of the image data included in theprint job, as described with reference to FIG. 7. However, a method fordistinguishing the transmission source application is not limited to themethod described in the first exemplary embodiment. A method differentfrom the method described in the first exemplary embodiment will now bedescribed as a second exemplary embodiment.

FIG. 9 is a sub-flow chart for describing the application identificationprocessing in step S603 in FIG. 6, and is a modified example of theprocessing described with reference to FIG. 7. Each step illustrated inthe flow chart in FIG. 9 is processed by the CPU 101 loading a controlprogram stored in a memory such as the ROM 102 onto the RAM 103 andexecuting the loaded program.

When the external apparatus such as the PC or the portable terminaltransmits a print job to the printing apparatus 100 by using the IPP,the external apparatus first transmits an HTTP request to the printingapparatus 100. In the present exemplary embodiment, the transmissionsource application is identified based on the HTTP request.

In step S901, the CPU 101 analyzes the received HTTP request, anddetermines whether predetermined information is included in the receivedHTTP request. For example, in a case where “application A” indicatingthe application A is included in UserAgent in an HTTP header, the CPU101 determines in step S901 that predetermined information is includedin the received HTTP request (YES in step S901), and the processingproceeds to step S702. On the other hand, when “application A” is notincluded in UserAgent in the HTTP header, the CPU 101 determines in stepS901 that predetermined information is not included in the received HTTPrequest (NO in step S901), and the processing proceeds to step S703.

As described above, according to the present exemplary embodiment, it ispossible to distinguish the transmission source application based on theHTTP request for printing using the IPP.

In the present exemplary embodiment, the description has been given of aconfiguration of distinguishing the transmission source applicationbased on the description in UserAgent in the HTTP request. However, thetransmission source application may be distinguished by usinginformation other than UserAgent. For example, in a case where attributeinformation indicating the application A is included in the HTTPrequest, it may be determined in step S901 that predeterminedinformation is included in the received HTTP request.

In each of the exemplary embodiments described above, the descriptionhas been given of the configuration of identifying a transmission sourceapplication in a case where the printing protocol of the received printjob is the IPP. However, other forms may be used. The transmissionsource application may be identified in the case of a specific printingprotocol different from the IPP, for example, in the case of the LPRprotocol.

Furthermore, in each of the exemplary embodiments described above,processing for identifying the transmission source application has beendescribed (FIGS. 7 and 9). However, the object to be identified is notlimited to the application. For example, a printing apparatus may beconfigured to identify transmission source software, such as a type ofan operating system (OS) or a printing function mounted on the OS.

According to an exemplary embodiment, it is possible to count the numberof times of printing while distinguishing a transmission sourceapplication for a specific printing protocol.

Additional embodiment(s) can also be realized by a computer of a systemor apparatus that reads out and executes computer executableinstructions (e.g., one or more programs) recorded on a storage medium(which may also be referred to more fully as a ‘non-transitorycomputer-readable storage medium’) to perform the functions of one ormore of the above-described embodiment(s) and/or that includes one ormore circuits (e.g., application specific integrated circuit (ASIC)) forperforming the functions of one or more of the above-describedembodiment(s), and by a method performed by the computer of the systemor apparatus by, for example, reading out and executing the computerexecutable instructions from the storage medium to perform the functionsof one or more of the above-described embodiment(s) and/or controllingthe one or more circuits to perform the functions of one or more of theabove-described embodiment(s). The computer may comprise one or moreprocessors (e.g., central processing unit (CPU), micro processing unit(MPU)) and may include a network of separate computers or separateprocessors to read out and execute the computer executable instructions.The computer executable instructions may be provided to the computer,for example, from a network or the storage medium. The storage mediummay include, for example, one or more of a hard disk, a random-accessmemory (RAM), a read only memory (ROM), a storage of distributedcomputing systems, an optical disk (such as a compact disc (CD), digitalversatile disc (DVD), or Blu-ray Disc (BD)™), a flash memory device, amemory card, and the like.

While the present disclosure has been described with reference toexemplary embodiments, it is to be understood that these exemplaryembodiments are not seen to be limiting. The scope of the followingclaims is to be accorded the broadest interpretation so as to encompassall such modifications and equivalent structures and functions.

This application claims the benefit of Japanese Patent Application No.2014-083594 filed Apr. 15, 2014, which is hereby incorporated byreference herein in its entirety.

What is claimed is:
 1. A printing apparatus comprising: a memory; aprocessor; a network I/F that receives a print job; a printer thatexecutes printing based on the received print job; a firstidentification unit configured to identify a printing protocol of thereceived print job; a second identification unit configured to identifya transmission source application of the received print job; and acounting unit configured to count a number of times of printingseparately for each printing protocol, wherein the counting unit counts,in a case where the printing protocol identified by the firstidentification unit is a specific printing protocol, the number of timesof printing further separately for each transmission source applicationof the received print job, wherein the second identification unitidentifies one transmission source application from at least twotransmission source applications having the same printing protocol,based on a format of image data associated with the received print jobso that the counting unit is configured to distinguish between thenumber of times of printing for the at least two transmission sourceapplications having the same printing protocol, and wherein the firstidentification unit, the second identification unit and the countingunit are implemented at least in part by the processor executing atleast one program recorded on the memory.
 2. The printing apparatusaccording to claim 1, wherein the counting unit counts, in a case wherethe printing protocol identified by the first identification unit is notthe specific printing protocol, the number of times of printing notseparately for each transmission source application of the receivedprint job.
 3. The printing apparatus according to claim 1, wherein thesecond identification unit identifies a transmission source applicationof a print job based on information included in a received hypertexttransfer protocol request.
 4. The printing apparatus according to claim1, wherein the specific printing protocol is an internet printingprotocol.
 5. A method for controlling a printing apparatus, the methodcomprising: receiving a print job; executing printing based on thereceived print job; identifying a printing protocol of the receivedprint job; identifying a transmission source application of the receivedprint job; and counting a number of times of printing separately foreach printing protocol, counting, in a case where the printing protocolidentified is a specific printing protocol, the number of times ofprinting further separately for each transmission source application ofthe received print job, identifying one transmission source applicationfrom at least two transmission source applications having the sameprinting protocol, based on a format of image data associated with thereceived print job so that the number of times of printing for the atleast two transmission source applications having the same printingprotocol is determined.
 6. The method according to claim 5, furthercomprising, counting, in a case where the printing protocol identifiedis not the specific printing protocol, the number of times of printingnot separately for each transmission source application of the receivedprint job.
 7. The method according to claim 5, wherein a transmissionsource application of a print job is identified based on informationincluded in a received hypertext transfer protocol request.
 8. Themethod according to claim 5, wherein the specific printing protocol isan internet printing protocol.
 9. A non-transitory computer-readablestorage medium storing computer executable instructions for causing acomputer to execute a method for controlling a printing apparatus, themethod comprising: receiving a print job; executing printing based onthe received print job; identifying a printing protocol of the receivedprint job; identifying a transmission source application of the receivedprint job; and counting a number of times of printing separately foreach printing protocol, counting, in a case where the printing protocolidentified is a specific printing protocol, the number of times ofprinting further separately for each transmission source application ofthe received print job, identifying one transmission source applicationfrom at least two transmission source applications having the sameprinting protocol, based on a format of image data associated with thereceived print job so that the number of times of printing for the atleast two transmission source applications having the same printingprotocol is determined.
 10. A printing apparatus comprising: a memory; aprocessor; a network I/F that receives a print job; a printer thatexecutes printing based on the received print job; a firstidentification unit configured to identify a printing protocol of thereceived print job; a second identification unit configured to identifya transmission source application of the received print job, and acounting unit configured to increment, in a case where the printingprotocol identified by the first identification unit is a specificprinting protocol, a number of times of printing of the transmissionsource application identified by the second identification unit, and toincrement, in a case where the printing protocol identified by the firstidentification unit is not the specific printing protocol, a number oftimes of printing of the printing protocol identified by the firstidentification unit, wherein the second identification unit identifiesone transmission source application from at least two transmissionsource applications having the same printing protocol, based on a formatof image data associated with the received print job so that thecounting unit is configured to distinguish between the number of timesof printing for the at least two transmission source applications havingthe same printing protocol, wherein the first identification unit, thesecond identification unit and the counting unit are implemented atleast in part by the processor executing at least one program recordedon the memory.
 11. The printing apparatus according to claim 10, whereinthe second identification unit identifies a transmission sourceapplication of a print job based on information included in a receivedhypertext transfer protocol request.
 12. The printing apparatusaccording to claim 10, wherein the specific printing protocol is aninternet printing protocol.
 13. A method for controlling a printingapparatus, the method comprising: receiving a print job; executingprinting based on the received print job; identifying a printingprotocol of the received print job; identifying a transmission sourceapplication of the received print job, and counting, to increment, in acase where the printing protocol identified is a specific printingprotocol, a number of times of printing of the transmission sourceapplication identified, and to increment, in a case where the printingprotocol identified is not the specific printing protocol, a number oftimes of printing of the printing protocol identified, identifying onetransmission source application from at least two transmission sourceapplications having the same printing protocol, based on a format ofimage data associated with the received print job so that the number oftimes of printing for the at least two transmission source applicationshaving the same printing protocol is determined.
 14. The methodaccording to claim 13, wherein the second identification unit identifiesa transmission source application of a print job based on informationincluded in a received hypertext transfer protocol request.
 15. Themethod according to claim 13, wherein the specific printing protocol isan internet printing protocol.
 16. A non-transitory computer-readablestorage medium storing computer executable instructions for causing acomputer to execute a method for controlling a printing apparatus, themethod comprising: receiving a print job; printing based on the receivedprint job; identifying a printing protocol of the received print job;identifying a transmission source application of the received print job,and counting, to increment, in a case where the printing protocolidentified is a specific printing protocol, a number of times ofprinting of the transmission source application identified, and toincrement, in a case where the printing protocol identified is not thespecific printing protocol, a number of times of printing of theprinting protocol identified, identifying one transmission sourceapplication from at least two transmission source applications havingthe same printing protocol, based on a format of image data associatedwith the received print job so that the number of times of printing forthe at least two transmission source applications having the sameprinting protocol is determined.